package com.work.service.transport;

import com.work.dto.main.TransportCorpSearchDTO;
import com.work.dto.transport.TransportSearchDTO;
import com.work.dto.transport.WorkArrangeSearchDTO;
import com.work.vo.transport.*;

import java.util.List;

/**
 * 货运接口
 *
 * @author ：dujianyu
 * @since ：Created in 2024/2/20 13:49
 */

public interface ITransportService {

    /**
     * 货运舱单详情
     * @param dto 搜索条件
     * @return TransportBillVO
     * @author dujianyu
     * @since 2024/3/25 15:00
     */
    TransportBillVO selectTransportBillDetail(TransportSearchDTO dto);

    /**
     * 货运舱单列表
     * @param  dto 搜索条件
     * @return List<TransportBillVO>
     * @author dujianyu
     * @since 2024/2/20 14:10
     */
    List<TransportBillVO> selectTransportBillList(TransportSearchDTO dto);

    /**
     * 货运船详情
     * @param dto 搜索条件
     * @return TransportShipVO
     * @author dujianyu
     * @since 2024/3/25 14:50
     */
    TransportShipVO selectTransportShipDetail(TransportSearchDTO dto);

    /**
     * 货运船列表
     * @param dto 搜索条件
     * @return List<TransportShipVO>
     * @author dujianyu
     * @since 2024/2/21 9:25
     */
    List<TransportShipVO> selectTransportShipList(TransportSearchDTO dto);

    /**
     * 获取一个货运船舶预报
     * @param dto 搜索条件
     * @return TransportShipVO
     * @author dujianyu
     * @since 2024/3/12 16:07
     */
    TransportShipVO selectTransportShip(TransportSearchDTO dto);

    /**
     * 根据代码返回包装名称
     * @param packageTypeCode 包装代码
     * @return String
     * @author dujianyu
     * @since 2024/3/8 10:50
     */
    String getPackageTypeNameByCode(String packageTypeCode);

    /** 
     * 包装列表
     * @param dto 搜索条件
     * @return List<TransportPackageTypeVO>
     * @author dujianyu
     * @since 2024/3/15 14:16
     */ 
    List<TransportPackageTypeVO> selectTransportPackageTypeList(TransportSearchDTO dto);

    /**
     * 获取船舶舱单货名
     * @param dto 搜索条件
     * @return List<CargoTypeVO>
     * @author dujianyu
     * @since 2024/5/6 14:29
     */
    List<CargoTypeVO> getShipCargoType(TransportSearchDTO dto);

    /**
     * 航运配工
     * @param dto 搜索条件
     * @return List<WorkArrangeShipVO>
     * @author dujianyu
     * @since 2024/5/14 14:22
     */
    List<WorkArrangeShipVO> selectWorkArrangeShipList(WorkArrangeSearchDTO dto);

    /**
     * 陆运配工
     * @param dto 搜索条件
     * @return List<WorkArrangeLandVO>
     * @author dujianyu
     * @since 2024/5/15 16:10
     */
    List<WorkArrangeLandVO> selectWorkArrangeLandList(WorkArrangeSearchDTO dto);

    /** 
     * 配工工人
     * @param dto 搜索条件
     * @return List<AssignWorkerVO>
     * @author dujianyu
     * @since 2024/5/20 10:46
     */ 
    List<AssignWorkerVO> selectAssignWorkerList(WorkArrangeSearchDTO dto);

    /**
     * 配工机械
     * @param dto 搜索条件
     * @return List<AssignMachineKindVO>
     * @author dujianyu
     * @since 2024/5/20 14:41
     */ 
    List<AssignMachineKindVO> selectAssignMachineList(WorkArrangeSearchDTO dto);

    /**
     * 队组列表
     * @param dto 搜索条件
     * @return List<CorpTeamVO>
     * @author dujianyu
     * @since 2024/6/13 9:02
     */
    List<CorpTeamVO> selectCorpTeamList(TransportCorpSearchDTO dto);

    /**
     * 货名列表
     * @param dto 搜索条件
     * @return List<CargoTypeVO>
     * @author dujianyu
     * @since 2024/7/4 14:03
     */
    List<CargoTypeVO> selectCargoTypeList(TransportSearchDTO dto);

    /**
     * 客户代码列表
     * @param dto 搜索条件
     * @return List<ClientCodeVO>
     * @author dujianyu
     * @since 2024/7/8 14:27
     */
    List<ClientCodeVO> selectClientCodeList(TransportSearchDTO dto);
}
